package com.dhecp.project.logstics.service.impl;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;
import com.dhecp.core.constant.DataFiltering;
import com.dhecp.core.utils.PageUtils;
import com.dhecp.project.common.service.impl.BaseModuleServiceImpl;
import com.dhecp.project.logstics.domain.FbaSpellTicketDetail;
import com.dhecp.project.logstics.domain.FbaSpellTicketDetailTol;
import com.dhecp.project.logstics.mapper.FbaSpellTicketDetailMapper;
import com.dhecp.project.logstics.service.FbaSpellTicketDetailService;
import com.dhecp.project.system.service.SysDictionaryForFieldService;

/**
 * 物流拼票 服务层
 * @Author fxz
 * @Date 2022/9/23
 */
@Service
public class FbaSpellTicketDetailServicelmpl extends BaseModuleServiceImpl implements FbaSpellTicketDetailService {

    @Autowired
    private FbaSpellTicketDetailMapper fbaSpellTicketDetailMapper;

    @Autowired
    private SysDictionaryForFieldService dictionaryForFieldService;


    /**
     * 查询头程计划单
     * @param params
     * @return
     * @throws Exception
     */
    @Override
    public List<FbaSpellTicketDetail> queryList(Map<String, Object> params) throws Exception {
        params.put(DataFiltering.TABLE_ALIAS, "t1");	//查询表别名
        params.put(DataFiltering.DATA_WHERE, dictionaryForFieldService.getWhereStr(params));	//常规查询条件SQL语句
        params.put(DataFiltering.DATA_SCODE, dictionaryForFieldService.getDataScode(params));	//数据权限查询条件SQL语句

        if (params.get("field") == null || params.get("field") == ""){
            String orderBy = "code asc";
            PageUtils.startPageOrder(orderBy);
        }else{
            PageUtils.startPage();
        }
        //获取当前装箱单有多少头程订单
        List<FbaSpellTicketDetail> queryList;
        //头程计划单下所有箱子数据
        List<FbaSpellTicketDetail> fbaSpellTicketDetailList = fbaSpellTicketDetailMapper.findFbaSpellTicketDetail(params);

        //fbaBoxDetailList为空新增  反之修改
        List<FbaSpellTicketDetail> fbaSpellTicketDetailListNew = null;
        String numRealityDeliver;
        String numRealityDeliver1;
        //总的数量值
        FbaSpellTicketDetailTol fbaSpellTicketDetailTol = new FbaSpellTicketDetailTol();
        if (fbaSpellTicketDetailList.size() > 0){
            queryList = new ArrayList<>();
            //取出每条箱子的商品数据将箱数赋值到对应的箱子数据上
            for (int j = 0; j < fbaSpellTicketDetailList.size(); j++) {
                fbaSpellTicketDetailListNew = JSON.parseArray(fbaSpellTicketDetailList.get(j).getProductInfo(), FbaSpellTicketDetail.class);
                for (int i = 0; i < fbaSpellTicketDetailListNew.size(); i++) {
                    if (j == 0) {
                        switch (j) {
                            case 0:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver1(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 1:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver2(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 2:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver3(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 3:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver4(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 4:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver5(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 5:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver6(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 6:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver7(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 7:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver8(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 8:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver9(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 9:
                                fbaSpellTicketDetailListNew.get(i).setNumRealityDeliver10(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                        }
                    } else {
                        numRealityDeliver = fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver().equals("")?"0":fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver();
                        numRealityDeliver1 = queryList.get(i).getNumRealityDeliver().equals("")?"0":queryList.get(i).getNumRealityDeliver();
                        queryList.get(i).setNumRealityDeliver(
                                String.valueOf(new Integer(numRealityDeliver1)
                                        + new Integer(numRealityDeliver)));
                        switch (j) {
                            case 1:
                                queryList.get(i).setNumRealityDeliver2(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 2:
                                queryList.get(i).setNumRealityDeliver3(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 3:
                                queryList.get(i).setNumRealityDeliver4(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 4:
                                queryList.get(i).setNumRealityDeliver5(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 5:
                                queryList.get(i).setNumRealityDeliver6(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 6:
                                queryList.get(i).setNumRealityDeliver7(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 7:
                                queryList.get(i).setNumRealityDeliver8(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 8:
                                queryList.get(i).setNumRealityDeliver9(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                            case 9:
                                queryList.get(i).setNumRealityDeliver10(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver());
                                break;
                        }
                    }
                    if (j == 0) {
                        queryList.add(fbaSpellTicketDetailListNew.get(i));
                    }
                }
            }

            //进行排序（naturalOrder 正序）（reverseOrder倒叙）
            queryList = queryList.stream().
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCommodityCode, Comparator.naturalOrder())).
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCodeStockLocation, Comparator.naturalOrder())).
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCodeStockArea, Comparator.naturalOrder())).
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCodeStockOn, Comparator.naturalOrder())).
                    collect(Collectors.toList());
        } else {
            queryList = fbaSpellTicketDetailMapper.select(params);
            for (int i = 0; i < queryList.size(); i++) {
                //设置行号
                queryList.get(i).setSerial((i+1)+"");
            }
        }

        //合计栏数据
        for (FbaSpellTicketDetail fbaSpellTicketDetail : queryList){
            fbaSpellTicketDetailTol.setNumPlanDeliver(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumPlanDeliver()) + new Integer(fbaSpellTicketDetail.getNumPlanDeliver())));
            fbaSpellTicketDetailTol.setNumRealityDeliver(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver()) + (fbaSpellTicketDetail.getNumRealityDeliver().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver1(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver1()) + (fbaSpellTicketDetail.getNumRealityDeliver1().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver1()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver2(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver2()) + (fbaSpellTicketDetail.getNumRealityDeliver2().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver2()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver3(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver3()) + (fbaSpellTicketDetail.getNumRealityDeliver3().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver3()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver4(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver4()) + (fbaSpellTicketDetail.getNumRealityDeliver4().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver4()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver5(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver5()) + (fbaSpellTicketDetail.getNumRealityDeliver5().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver5()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver6(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver6()) + (fbaSpellTicketDetail.getNumRealityDeliver6().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver6()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver7(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver7()) + (fbaSpellTicketDetail.getNumRealityDeliver7().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver7()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver8(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver8()) + (fbaSpellTicketDetail.getNumRealityDeliver8().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver8()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver9(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver9()) + (fbaSpellTicketDetail.getNumRealityDeliver9().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver9()))));
            fbaSpellTicketDetailTol.setNumRealityDeliver10(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver9()) + (fbaSpellTicketDetail.getNumRealityDeliver10().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver10()))));
        }

        FbaSpellTicketDetail fbaSpellTicketDetail;
        int tag = 0;
        //3拼票
        int num = Integer.parseInt(params.get("num").toString());
        if (num == 1){
            tag = 7;
        } else if (num == 2){
            tag = 7;
        } else if (num ==3){
            tag = 8;
        }else if (num ==0){
            tag = 5;
        }

        String serial = "";
        for (int i = 0; i < tag; i++) {
            fbaSpellTicketDetail = new FbaSpellTicketDetail();
            switch (i) {
                case 0:
                    serial = "合计";
                    break;
                case 1:
                    serial = "箱重(kg)";
                    break;
                case 2:
                    serial = "箱规长(cm)";
                    break;
                case 3:
                    serial = "箱规宽(cm)";
                    break;
                case 4:
                    serial = "箱规高(cm)";
                    break;
                case 5:
                    serial = "抛重(kg)";
                    break;
                case 6:
                    serial = "单箱采购总价(￥)";
                    break;
                case 7:
                    serial = "追踪编号";
                    break;
            }
            //添加箱重/长宽高等数据
            addJx(fbaSpellTicketDetailList,fbaSpellTicketDetail,i,fbaSpellTicketDetailTol);

            fbaSpellTicketDetail.setScrapData("1");
            fbaSpellTicketDetail.setSerial(serial);
            queryList.add(fbaSpellTicketDetail);
        }
        return queryList;
    }

    /**
     * 查询自动头程计划单
     * @param params
     * @return
     * @throws Exception
     */
    @Override
    public List<FbaSpellTicketDetail> queryAutoList(Map<String, Object> params) throws Exception {
        params.put(DataFiltering.TABLE_ALIAS, "t1");	//查询表别名
        params.put(DataFiltering.DATA_WHERE, dictionaryForFieldService.getWhereStr(params));	//常规查询条件SQL语句
        params.put(DataFiltering.DATA_SCODE, dictionaryForFieldService.getDataScode(params));	//数据权限查询条件SQL语句

        if (params.get("field") == null || params.get("field") == ""){
            String orderBy = "code asc";
            PageUtils.startPageOrder(orderBy);
        }else{
            PageUtils.startPage();
        }
        //获取当前装箱单有多少头程订单
        List<FbaSpellTicketDetail> queryList;
        //头程计划单下所有箱子数据
        List<FbaSpellTicketDetail> fbaSpellTicketDetailList = fbaSpellTicketDetailMapper.findFbaSpellTicketDetail(params);

        //fbaSpellTicketDetailList为空新增  反之修改
        List<FbaSpellTicketDetail> fbaSpellTicketDetailListNew = null;
        String numRealityDeliver;
        String numRealityDeliver1;
        //总的数量值
        FbaSpellTicketDetailTol fbaSpellTicketDetailTol = new FbaSpellTicketDetailTol();
        Map<String,List<BigDecimal>> boxListMap = new HashMap<>();
        List<BigDecimal> boxList;
        List<BigDecimal> boxListTol;

        int tag = 0;
        //1.装箱 2.发货
        int num = Integer.parseInt(params.get("num").toString());
        if (num == 1){
            tag = 7;
        } else if (num == 2){
            tag = 7;
        } else if (num ==3){
            tag = 8;
        }else if (num ==0){
            tag = 5;
        }
        if (fbaSpellTicketDetailList.size() > 0){
            queryList = new ArrayList<>();
            //取出每条箱子的商品数据将箱数赋值到对应的箱子数据上
            for (int j = 0; j < fbaSpellTicketDetailList.size(); j++) {
                fbaSpellTicketDetailListNew = JSON.parseArray(fbaSpellTicketDetailList.get(j).getProductInfo(), FbaSpellTicketDetail.class);
                for (int i = 0; i < fbaSpellTicketDetailListNew.size(); i++) {
                    boxList = new LinkedList<>();
                    if (j != 0) {
                        //计算商品的计划数量和实际数量
                        numRealityDeliver = fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver().equals("") ? "0" : fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver();
                        numRealityDeliver1 = queryList.get(i).getNumRealityDeliver().equals("")?"0":queryList.get(i).getNumRealityDeliver();
                        queryList.get(i).setNumRealityDeliver(
                                String.valueOf(new Integer(numRealityDeliver1)
                                        + new Integer(numRealityDeliver)));
                    }
                    //将每个商品的箱子数据按照数组形式存储起来
                    if (boxListMap.get(fbaSpellTicketDetailListNew.get(i).getSerial()) == null) {
                        boxList.add(new BigDecimal(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver()));
                        boxListMap.put(fbaSpellTicketDetailListNew.get(i).getSerial(), boxList);
                    } else {
                        boxList = boxListMap.get(fbaSpellTicketDetailListNew.get(i).getSerial());
                        if (fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver().equals("")) {
                            boxList.add(BigDecimal.ZERO);
                        } else {
                            boxList.add(new BigDecimal(fbaSpellTicketDetailListNew.get(i).getNumRealityDeliver()));
                        }
                        boxListMap.put(fbaSpellTicketDetailListNew.get(i).getSerial(), boxList);
                    }
                    if (j == 0) {
                        fbaSpellTicketDetailListNew.get(i).setBoxList("");
                        queryList.add(fbaSpellTicketDetailListNew.get(i));
                    }
                }

                //箱重-追踪编号的每箱的数据设置进数组中
                String serial = "";
                String val = "";
                for (int i = 1; i < tag; i++) {
                    boxListTol = new LinkedList<>();
                    switch (i) {
                        case 1:
                            boxListTol.add(new BigDecimal(fbaSpellTicketDetailList.get(j).getWeight()));
                            val = fbaSpellTicketDetailList.get(j).getWeight();
                            serial = "箱重(kg)";
                            break;
                        case 2:
                            serial = "箱规长(cm)";
                            boxListTol.add(new BigDecimal(fbaSpellTicketDetailList.get(j).getLength()));
                            val = fbaSpellTicketDetailList.get(j).getLength();
                            break;
                        case 3:
                            serial = "箱规宽(cm)";
                            boxListTol.add(new BigDecimal(fbaSpellTicketDetailList.get(j).getWidth()));
                            val = fbaSpellTicketDetailList.get(j).getWidth();
                            break;
                        case 4:
                            serial = "箱规高(cm)";
                            boxListTol.add(new BigDecimal(fbaSpellTicketDetailList.get(j).getHeight()));
                            val = fbaSpellTicketDetailList.get(j).getHeight();
                            break;
                        case 5:
                            serial = "抛重(kg)";
                            boxListTol.add(new BigDecimal(fbaSpellTicketDetailList.get(j).getWeightVol()));
                            val = fbaSpellTicketDetailList.get(j).getWeightVol();
                            break;
                        case 6:
                            serial = "单箱采购总价(￥)";
                            boxListTol.add(fbaSpellTicketDetailList.get(j).getPriceSingleBoxReq());
                            val = String.valueOf(fbaSpellTicketDetailList.get(j).getPriceSingleBoxReq());
                            break;
                        case 7:
                            serial = "追踪编号";
                            if (fbaSpellTicketDetailList.get(j).getTrackingCode() == null){
                                boxListTol.add(BigDecimal.ZERO);
                                val = "0";
                            }else {
                                boxListTol.add(new BigDecimal(fbaSpellTicketDetailList.get(j).getTrackingCode()));
                                val = fbaSpellTicketDetailList.get(j).getTrackingCode();
                            }
                            break;
                    }
                    if (j == 0) {
                        boxListMap.put(serial, boxListTol);
                    } else {
                        boxListTol = boxListMap.get(serial);
                        if (val.equals("")) {
                            boxListTol.add(BigDecimal.ZERO);
                        } else {
                            boxListTol.add(new BigDecimal(val));
                        }
                        boxListMap.put(serial, boxListTol);
                    }
                }
            }

            //进行排序（naturalOrder 正序）（reverseOrder倒叙）
            queryList = queryList.stream().
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCommodityCode, Comparator.naturalOrder())).
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCodeStockLocation, Comparator.naturalOrder())).
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCodeStockArea, Comparator.naturalOrder())).
                    sorted(Comparator.comparing(FbaSpellTicketDetail::getCodeStockOn, Comparator.naturalOrder())).
                    collect(Collectors.toList());

            Map<String,BigDecimal> boxListMapTol = new HashMap<>();
            //合计栏数据
            for (FbaSpellTicketDetail fbaSpellTicketDetail : queryList){
                fbaSpellTicketDetail.setBoxList(boxListMap.get(fbaSpellTicketDetail.getSerial()).toString());
                fbaSpellTicketDetailTol.setNumPlanDeliver(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumPlanDeliver()) + new Integer(fbaSpellTicketDetail.getNumPlanDeliver())));
                fbaSpellTicketDetailTol.setNumRealityDeliver(String.valueOf(new Integer(fbaSpellTicketDetailTol.getNumRealityDeliver()) + (fbaSpellTicketDetail.getNumRealityDeliver().equals("")?0:new Integer(fbaSpellTicketDetail.getNumRealityDeliver()))));
                for (int i = 0; i < boxListMap.get(fbaSpellTicketDetail.getSerial()).size(); i++) {
                    if (boxListMapTol.get(String.valueOf(i)) == null){
                        boxListMapTol.put(String.valueOf(i),boxListMap.get(fbaSpellTicketDetail.getSerial()).get(i));
                    }else {
                        if (boxListMapTol.get(String.valueOf(i)).equals("")){
                            boxListMapTol.put(String.valueOf(i),BigDecimal.ZERO);
                        }else {
                            boxListMapTol.put(String.valueOf(i),boxListMapTol.get(String.valueOf(i)).add(boxListMap.get(fbaSpellTicketDetail.getSerial()).get(i)));
                        }
                    }
                }
            }

            //设置合计数据
            boxList = new LinkedList<>();
            for(Map.Entry entry : boxListMapTol.entrySet()){
                boxList.add((BigDecimal) entry.getValue());
            }
            fbaSpellTicketDetailTol.setBoxList(boxList.toString());
        } else {
            queryList = fbaSpellTicketDetailMapper.select(params);
            for (int i = 0; i < queryList.size(); i++) {
                //设置行号
                queryList.get(i).setSerial((i+1)+"");
            }
        }



        FbaSpellTicketDetail fbaSpellTicketDetail;


        String serial = "";
        for (int i = 0; i < tag; i++) {
            fbaSpellTicketDetail = new FbaSpellTicketDetail();
            switch (i) {
                case 0:
                    serial = "合计";
                    break;
                case 1:
                    serial = "箱重(kg)";
                    break;
                case 2:
                    serial = "箱规长(cm)";
                    break;
                case 3:
                    serial = "箱规宽(cm)";
                    break;
                case 4:
                    serial = "箱规高(cm)";
                    break;
                case 5:
                    serial = "抛重(kg)";
                    break;
                case 6:
                    serial = "单箱采购总价(￥)";
                    break;
                case 7:
                    serial = "追踪编号";
                    break;
            }
            if (i != 0){
                fbaSpellTicketDetail.setBoxList(boxListMap.get(serial)==null?null:boxListMap.get(serial).toString());
            }
            if (i == 0){
                fbaSpellTicketDetail.setNumPlanDeliver(fbaSpellTicketDetailTol.getNumPlanDeliver());
                fbaSpellTicketDetail.setNumRealityDeliver(fbaSpellTicketDetailTol.getNumRealityDeliver().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver());
                fbaSpellTicketDetail.setBoxList(fbaSpellTicketDetailTol.getBoxList());
            }

            fbaSpellTicketDetail.setScrapData("1");
            fbaSpellTicketDetail.setSerial(serial);
            queryList.add(fbaSpellTicketDetail);
        }
        return queryList;
    }





    private void  addJx(List<FbaSpellTicketDetail> fbaSpellTicketDetailList,FbaSpellTicketDetail fbaSpellTicketDetail,Integer type,FbaSpellTicketDetailTol fbaSpellTicketDetailTol){
        String valueNum = "";
        for (int j = 0; j < fbaSpellTicketDetailList.size(); j++) {
            if (type == -1){
                valueNum = fbaSpellTicketDetail.getNumRealityDeliver();
            }  else if (type == 1){
                valueNum = fbaSpellTicketDetailList.get(j).getWeight();
            } else  if (type == 2){
                valueNum = fbaSpellTicketDetailList.get(j).getLength();
            }  else  if (type == 3){
                valueNum = fbaSpellTicketDetailList.get(j).getWidth();
            } else  if (type == 4){
                valueNum = fbaSpellTicketDetailList.get(j).getHeight();
            } else  if (type == 5){
                valueNum = fbaSpellTicketDetailList.get(j).getWeightVol();
            } else  if (type == 6){
                valueNum = String.valueOf(fbaSpellTicketDetailList.get(j).getPriceSingleBoxReq());
            }else  if (type == 7){
                valueNum = fbaSpellTicketDetailList.get(j).getTrackingCode();
            }
            if (type != 0){
                switch (j) {
                    case 0:
                        fbaSpellTicketDetail.setNumRealityDeliver1(valueNum);
                        break;
                    case 1:
                        fbaSpellTicketDetail.setNumRealityDeliver2(valueNum);
                        break;
                    case 2:
                        fbaSpellTicketDetail.setNumRealityDeliver3(valueNum);
                        break;
                    case 3:
                        fbaSpellTicketDetail.setNumRealityDeliver4(valueNum);
                        break;
                    case 4:
                        fbaSpellTicketDetail.setNumRealityDeliver5(valueNum);
                        break;
                    case 5:
                        fbaSpellTicketDetail.setNumRealityDeliver6(valueNum);
                        break;
                    case 6:
                        fbaSpellTicketDetail.setNumRealityDeliver7(valueNum);
                        break;
                    case 7:
                        fbaSpellTicketDetail.setNumRealityDeliver8(valueNum);
                        break;
                    case 8:
                        fbaSpellTicketDetail.setNumRealityDeliver9(valueNum);
                        break;
                    case 9:
                        fbaSpellTicketDetail.setNumRealityDeliver10(valueNum);
                        break;
                }
            }
        }
        if (type == 0){
            fbaSpellTicketDetail.setNumPlanDeliver(fbaSpellTicketDetailTol.getNumPlanDeliver());
            fbaSpellTicketDetail.setNumRealityDeliver(fbaSpellTicketDetailTol.getNumRealityDeliver().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver());
            fbaSpellTicketDetail.setNumRealityDeliver1(fbaSpellTicketDetailTol.getNumRealityDeliver1().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver1());
            fbaSpellTicketDetail.setNumRealityDeliver2(fbaSpellTicketDetailTol.getNumRealityDeliver2().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver2());
            fbaSpellTicketDetail.setNumRealityDeliver3(fbaSpellTicketDetailTol.getNumRealityDeliver3().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver3());
            fbaSpellTicketDetail.setNumRealityDeliver4(fbaSpellTicketDetailTol.getNumRealityDeliver4().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver4());
            fbaSpellTicketDetail.setNumRealityDeliver5(fbaSpellTicketDetailTol.getNumRealityDeliver5().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver5());
            fbaSpellTicketDetail.setNumRealityDeliver6(fbaSpellTicketDetailTol.getNumRealityDeliver6().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver6());
            fbaSpellTicketDetail.setNumRealityDeliver7(fbaSpellTicketDetailTol.getNumRealityDeliver7().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver7());
            fbaSpellTicketDetail.setNumRealityDeliver8(fbaSpellTicketDetailTol.getNumRealityDeliver8().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver8());
            fbaSpellTicketDetail.setNumRealityDeliver9(fbaSpellTicketDetailTol.getNumRealityDeliver9().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver9());
            fbaSpellTicketDetail.setNumRealityDeliver10(fbaSpellTicketDetailTol.getNumRealityDeliver10().equals("0")?"":fbaSpellTicketDetailTol.getNumRealityDeliver10());
        }
    }
}
